diff --git a/system/core/Config.php b/system/core/Config.php
index 7e64444..14ade72 100644
--- a/system/core/Config.php
+++ b/system/core/Config.php
@@ -184,16 +184,16 @@
 	 *
 	 * @param	string	$item	Config item name
 	 * @param	string	$index	Index name
-	 * @return	string|bool	The configuration item or FALSE on failure
+	 * @return	string|null	The configuration item or NULL on failure
 	 */
 	public function item($item, $index = '')
 	{
 		if ($index == '')
 		{
-			return isset($this->config[$item]) ? $this->config[$item] : FALSE;
+			return isset($this->config[$item]) ? $this->config[$item] : NULL;
 		}
 
-		return isset($this->config[$index], $this->config[$index][$item]) ? $this->config[$index][$item] : FALSE;
+		return isset($this->config[$index], $this->config[$index][$item]) ? $this->config[$index][$item] : NULL;
 	}
 
 	// --------------------------------------------------------------------
diff --git a/user_guide_src/source/changelog.rst b/user_guide_src/source/changelog.rst
index 2ecbcb3..71f5305 100644
--- a/user_guide_src/source/changelog.rst
+++ b/user_guide_src/source/changelog.rst
@@ -407,7 +407,8 @@
    -  :doc:`Config Library <libraries/config>` changes include:
 
       -  Changed ``site_url()`` method  to accept an array as well.
-      -  Removed internal method ``_assign_to_config()`` and moved it's implementation in *CodeIgniter.php* instead.
+      -  Removed internal method ``_assign_to_config()`` and moved its implementation to *CodeIgniter.php* instead.
+	 -  ``item()`` now returns NULL instead of FALSE when the required config item doesn't exist.
 
    -  :doc:`Security Library <libraries/security>` changes include:
 
diff --git a/user_guide_src/source/installation/upgrade_300.rst b/user_guide_src/source/installation/upgrade_300.rst
index 3e8307c..0eafaf9 100644
--- a/user_guide_src/source/installation/upgrade_300.rst
+++ b/user_guide_src/source/installation/upgrade_300.rst
@@ -145,22 +145,29 @@
 	(.+)	// matches ANYTHING
 	(:any)	// matches any character, except for '/'
 
+*************************************************
+Step 10: Check the calls to config->item() method
+*************************************************
+
+This method now returns NULL instead of FALSE when the required config
+item doesn't exist.
+
 *****************************************************************************
-Step 10: Check the calls to Array Helper's element() and elements() functions
+Step 11: Check the calls to Array Helper's element() and elements() functions
 *****************************************************************************
 
 The default return value of these functions, when the required elements
 don't exist, has been changed from FALSE to NULL.
 
 ***********************************************************************
-Step 11: Check the calls to Directory Helper's directory_map() function
+Step 12: Check the calls to Directory Helper's directory_map() function
 ***********************************************************************
 
 In the resulting array, directories now end with a trailing directory
 separator (i.e. a slash, usually).
 
 *************************************************************
-Step 12: Update usage of Database Forge's drop_table() method
+Step 13: Update usage of Database Forge's drop_table() method
 *************************************************************
 
 Up until now, ``drop_table()`` added an IF EXISTS clause by default or it didn't work
@@ -182,7 +189,7 @@
 	all drivers with the exception of ODBC.
 
 ***********************************************************
-Step 13: Change usage of Email library with multiple emails
+Step 14: Change usage of Email library with multiple emails
 ***********************************************************
 
 The :doc:`Email Library <../libraries/email>` will automatically clear the
@@ -197,7 +204,7 @@
  	}
 
 ***************************************************
-Step 14: Update your Form_validation language lines
+Step 15: Update your Form_validation language lines
 ***************************************************
 
 Two improvements have been made to the :doc:`Form Validation Library
@@ -228,7 +235,7 @@
 	later.
 
 ****************************************************************
-Step 15: Remove usage of (previously) deprecated functionalities
+Step 16: Remove usage of (previously) deprecated functionalities
 ****************************************************************
 
 In addition to the ``$autoload['core']`` configuration setting, there's a
diff --git a/user_guide_src/source/libraries/config.rst b/user_guide_src/source/libraries/config.rst
index 08d9c29..654dc4d 100644
--- a/user_guide_src/source/libraries/config.rst
+++ b/user_guide_src/source/libraries/config.rst
@@ -90,7 +90,7 @@
 
 	$lang = $this->config->item('language');
 
-The function returns FALSE (boolean) if the item you are trying to fetch
+The function returns NULL if the item you are trying to fetch
 does not exist.
 
 If you are using the second parameter of the $this->config->load
